// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
// import Vue from 'vue'
// import App from './App'
// import router from './router'

// Vue.config.productionTip = false

// /* eslint-disable no-new */
// new Vue({
//   el: '#app',
//   router,
//   components: { App },
//   template: '<App/>'
// })

import Vue from 'vue'
import App from './App'
import { CreateRouter } from './router'
import { CreateStore } from './store'

Vue.config.productionTip = false

// 导出一个工厂函数，用于创建新的vue实例 每次客户端的请求，都会创建一个新的vue实例 ，接着对这个实例进行路由渲染，然后返回给客户端
export function createApp () {
  console.log('--------createApp 开始-------------')
  // 创建 router 实例
  const router = new CreateRouter()
  const store = new CreateStore()
  const app = new Vue({
    // 注入 router 到根 Vue 实例
    router,
    store,
    render: h => h(App)
  })
  console.log('----离开-createApp-------------')
  // 返回 app 和 router 、 store
  return { app, router, store }
}
